﻿using PHMEE.Entities.MqttDt.CollectPara;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;

namespace PHMEE
{
    /// <summary>
    /// 振动通道
    /// </summary>
    public interface IVibChannelParaRepository : IRepository<VibChannelPara, Guid>
    {
        /// <summary>
        /// 根据SysParaID查出VibChannelPara集合--过滤没有选择测点的
        /// </summary>
        /// <param name="CollectParameterID"></param>
        /// <returns></returns>
        Task<List<VibChannelPara>> GetByVibChannelWithMqttAsync(Guid SysParaID);
        /// <summary>
        /// 根据SysParaID查出VibChannelPara集合
        /// </summary>
        /// <param name="CollectParameterID"></param>
        /// <returns></returns>
        Task<List<VibChannelPara>> GetAllByVibChannelWithMqttAsync(Guid SysParaID);
        /// <summary>
        /// 查询单个通道对应的测点
        /// </summary>
        /// <param name="SysParaID"></param>
        /// <param name="chno"></param>
        /// <returns></returns>
        Task<(Guid PointId, Guid Id)> GetByCollectPoint(Guid SysParaID, int chno);

        /// <summary>
        /// 根据测点获取表头信息
        /// </summary>
        /// <param name="PointId"></param>
        /// <returns></returns>
        Task<SysPara> GetByVibChannelPara(Guid PointId);
        /// <summary>
        /// 根据 SysParaID 和 ChNo 获取 VibChannelPara
        /// </summary>
        /// <param name="sysParaId">系统参数 ID</param>
        /// <param name="chNo">通道号</param>
        /// <returns></returns>
        Task<VibChannelPara> GetVibChannelBySysParaIdAndChNoAsync(Guid sysParaId, int chNo);
    }
}
